关于信用模型的那些事儿
The following article is from 风控建模 Author 小溪1005
最近小编带了3个小伙伴一起参与信用模型的搭建,在模型开发的过程中,小伙伴们遇到了很多问题,其中很多也是小编曾经遇到过的,现在总结一下,希望自己也能记住。
1.什么是观察期和表现期?
一般来说,表现期是确定Y变量的,观察期是确定X变量的。拿申请模型来说,表现期就是客户申请通过放款之后,客户的还款表现;观察期就是客户的申请时点之前的需要纳入观察的行为活动数据的时间,简单说就是回溯。
2.如何确定表现期和好坏客户?
表现期一般看vintage,vintage在某个mob达到一个较稳定的坏账率的时候,即可将此mob作为表现期;坏账率主要看滚动率,滚动率在某个mob达到一个较为稳点的点即可将此时的逾期率作为坏账率。为了提高模型的区分度,一般会做3-4个标签,好、坏、灰等。
3.建模数据来源
我们在数据集市中将客户的各个信息进行整合清洗,按照某个主键形成一个大宽表以供我们建模。这个注意,这里的每一个主键都是一个建模样本,所以遇到比如一些交易数据,一个主键可能对应多条交易数据,这就需要对交易数据进行清洗衍生,将多条交易数据整合成一条数据。
4.特征衍生
关于特征衍生有按时间切片进行衍生,有交叉组合衍生,也有聚类进行衍生,也有用梯度集成树模型进行交叉衍生,但是有一点需要注意,就是使用梯度集成树进行衍生的时候不能使用第一课树的第一个变量进行衍生,这个问题小编以前并没有注意,后来一个领导提醒了我。要注意,无论怎么衍生出来的特征一定要有业务含义,否则效果再好也没有用,还有特征衍生也是决定模型上限的一个主要因素,小编还尝试过使用用户画像的衍生特征,这个大家也可以试一下。
5.特征筛选
特征筛选的方法有很多,小编先讲一下小编建模时的筛选过程,首先是空值率,单值率,特征的时间序列分布,每个特征的显著性,IV值及PSI,逐步回归进行筛选,是否单调(其实这个是怕特征波动,导致不稳定,最多可以有一个拐点,比如U型),是否符合业务含义,多重共线性(相关系数矩阵、方差膨胀因子,L1\L2正则化,如果此时特征还是比较多,可以使用变量聚类)等。
以上是小编的进行信用模型特征筛选的过程,但有时需要做快速模型,小编也会用一些算法进行特征筛选,比如随机森林或者XGBoost等树类模型,但是有一点需要注意就是因为树类模型每次选的特征和样本不同,特征的重要性也不一样,小编认为选重要性排在前30的特征比较合理。
6.woe转化的作用是什么,在学习集中转换还是在整个样本集进行转换?
woe编码转换主要是在逻辑回归使用,因为逻辑回归是广义线性模型,woe编码是对特征进行线性化,在树类模型中就不需要使用woe转换,可以使用onehot。woe转换是在学习集进行的,如果在整个样本集进行,会将一部分验证集和跨期测试集的信息进行学习了。
7.关于验证集和跨期测试集 woe映射的一个小技巧
因为需要吧学习集的woe映射到验证集和跨期测试集,一般常规的做法是要写IF-ELSE,但小编较懒,不爱写IF-ELSE,所以小编苦思冥想,想出了一个比较好的方法,就是利用配置文件进行映射。在python中可以利用series进行apply操作,在sas中同样可以进行类似的配置文件操作,具体的过程可看小编的建模代码,思想就是做一个配置文件。
来源|风控建模
作者|小溪1005
更多精彩,戳这里: